package thinkingInJava.String_.regex_;

//: strings/ThreatAnalyzer.java
import java.util.regex.*;
import java.util.*;

public class ThreatAnalyzer {
static String threatData =
  "58.27.82.161@02/10/2005\n" +
  "204.45.234.40@02/11/2005\n" +
  "58.27.82.161@02/11/2005\n" +
  "58.27.82.161@02/12/2005\n" +
  "58.27.82.161@02/12/2005\n" +
  "[Next log section with different data format]";
public static void main(String[] args) {
  Scanner scanner = new Scanner(threatData);
  String pattern = "(\\d+[.]\\d+[.]\\d+[.]\\d+)@" +
    "(\\d{2}/\\d{2}/\\d{4})";
  while(scanner.hasNext(pattern)) {
    scanner.next(pattern);
    MatchResult match = scanner.match();
    String ip = match.group(1);	// 这里的组序号代表正则中的第几个()
    String date = match.group(2);
    String ss = match.group();
    String ss1 = match.group(0);
    //String ss2 = match.group(3);	// 异常
    System.out.format("Threat on %s from %s\n", date,ip);
  }
}
} /* Output:
Threat on 02/10/2005 from 58.27.82.161
Threat on 02/11/2005 from 204.45.234.40
Threat on 02/11/2005 from 58.27.82.161
Threat on 02/12/2005 from 58.27.82.161
Threat on 02/12/2005 from 58.27.82.161
*///:~

